#ifndef __CPUFEATURE__
#define __CPUFEATURE__
#define CPU_ISA "rv64imafdc"
#define CFG_CPU_NAME "e603"
#define CFG_E16 0
#define CFG_XLEN 64
#define CFG_FLEN 64
// cpu feature 
#define CFG_HAS_DCACHE
#define CFG_HAS_ICACHE
#define CFG_HAS_MMU
#define CFG_HAS_PMP
#define CFG_PMP_ENTRY_NUM 8
#define CFG_IREGION_BASE_ADDR 0x18000000
#define CFG_IRQ_NUM 64
#define CFG_HAS_CLIC
#define CFG_CLICINTCTLBITS 3
#define CFG_HAS_NICE
#define CFG_TMR_BASE_ADDR 0x18030000
// evalsoc feature 
#define EVALSOC_PERIPS_BASE 0x10000000
#define EVALSOC_FLASH_XIP_BASE 0x20000000
#define EVALSOC_FLASH_XIP_ADDR_WIDTH 28
#define EVALSOC_SYSMEM_BASE 0x80000000
#define EVALSOC_SYSMEM_ADDR_WIDTH 31
#define EVALSOC_CFG_IRAM_BASE_ADDR 0x60000000
#define EVALSOC_CFG_IRAM_ADDR_WIDTH 16
#define EVALSOC_CFG_DRAM_BASE_ADDR 0x68000000
#define EVALSOC_CFG_DRAM_ADDR_WIDTH 16
#define EVALSOC_CFG_PERIPS_BASE 0x10000000
#define EVALSOC_CFG_FLASH_XIP_BASE 0x20000000
#define EVALSOC_CFG_FLASH_XIP_ADDR_WIDTH 28
#define EVALSOC_CFG_SYSMEM_BASE 0x80000000
#define EVALSOC_CFG_SYSMEM_ADDR_WIDTH 31
#define EVALSOC_HAS_DDR_ICB_CMD_DELAY
#define EVALSOC_HAS_CPU_RAM_WRAPPER
#define EVALSOC_VERSION_IS_2
#define EVALSOC_HAS_BIU2ILM
#define EVALSOC_HAS_BIU2DLM
#define EVALSOC_HAS_SUBSYS_MISC
#define EVALSOC_HAS_SDIO
#define EVALSOC_IOCP_BASE 0x50000000
#define EVALSOC_IOCP_ADDR_WIDTH 28
#define EVALSOC_HAS_ETHERNET
#define EVALSOC_HAS_UART_MODEL
#define EVALSOC_HAS_IRAM_DRAM
#define EVALSOC_IRAM_BASE_ADDR 0x60000000
#define EVALSOC_IRAM_DATA_WIDTH 64
#define EVALSOC_IRAM_WMSK_WIDTH 8
#define EVALSOC_IRAM_AW_LSB 3
#define EVALSOC_IRAM_ADDR_WIDTH 16
#define EVALSOC_DRAM_BASE_ADDR 0x68000000
#define EVALSOC_DRAM_DATA_WIDTH 64
#define EVALSOC_DRAM_WMSK_WIDTH 8
#define EVALSOC_DRAM_AW_LSB 3
#define EVALSOC_DRAM_ADDR_WIDTH 16
#define EVALSOC_IRAM_RAM_DP 8192
#define EVALSOC_IRAM_RAM_AW 13
#define EVALSOC_DRAM_RAM_DP 8192
#define EVALSOC_DRAM_RAM_AW 13
#endif
